-- clase del martes 3-4-2012 de Gabriela Steren

--zipGS :: ([a] -> ([b]->[(a,b)]) -> ([b]->[(a,b)])) -> ([b]->[(a,b)]) -> [a] -> ([b]->[(a,b)])
-- zipGS = foldr(\ x zipXs -> g 
                -- where     g [] = [] 
                      -- g (y:ys) = (x,y):(zipXs ys)))
zipGS = foldr  (\ x zipXs lista -> case lista of 
                                [] -> []
                                (y:ys) -> (x,y):(zipXs ys)) (const [])

